From 6dc84611b3d9d8ca194d2f183e7ef5af68d16248 Mon Sep 17 00:00:00 2001 From: parkrrrr Date: Tue, 17 Oct 2006 13:06:58 +0000 Subject: [PATCH] fixed problem with 'all' option in position filter git-svn-id: http://gpsbabel.googlecode.com/svn/trunk@2401 f51c46e8-681c-474f-0cfe-069cfd0219fb --- gpsbabel/position.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/gpsbabel/position.c b/gpsbabel/position.c index 24aa2d0d3..d8177ad5c 100644 --- a/gpsbabel/position.c +++ b/gpsbabel/position.c @@ -138,39 +138,40 @@ position_runqueue(queue *q, int nelems, int qtype) break; } } - else if (del ) { - switch (qtype) { + else { + if (del ) { + switch (qtype) { case wptdata: - waypt_del(comp[i]); - waypt_free(comp[i]); + waypt_del(comp[j]); + waypt_free(comp[j]); del = 0; break; case trkdata: - track_del_wpt(cur_rte, comp[i]); - del = !!purge_duplicates; + track_del_wpt(cur_rte, comp[j]); + del = 0; break; case rtedata: - route_del_wpt(cur_rte, comp[i]); + route_del_wpt(cur_rte, comp[j]); del = 0; break; default: break; + } } - } else { - j = i; /* advance last use point */ + j = i; } } if ( del ) { switch (qtype) { case wptdata: - waypt_del(comp[nelems-1]); - waypt_free(comp[nelems-1]); + waypt_del(comp[j]); + waypt_free(comp[j]); break; case trkdata: - track_del_wpt(cur_rte, comp[i]); + track_del_wpt(cur_rte, comp[j]); break; case rtedata: - route_del_wpt(cur_rte, comp[i]); + route_del_wpt(cur_rte, comp[j]); break; default: break; -- 2.30.2